🐳 docker | July 21, 2021
docker inspect [옵션] <이미지이름:태그>
- 다운 받은 이미지 상세보기
docker inspect nginx:1.14
docker create [옵션] <이미지이름:태그>
- 컨테이너를 생성 후 기본 백그라운드 실행docker start [옵션] <컨테이너 이름>
- 생성된 컨테이너를 실행run
명령어입니다.docker stop [옵션] <컨테이너 이름>
- 실행중인 컨테이너를 중지docker rm [옵션] <컨테이너 이름>
- 중지중인 컨테이너를 삭제docker attach [옵션] <컨테이너 이름>
- 포그라운드로 실행중인 컨테이너 연결docker top [옵션] <컨테이너 이름>
- 컨테이너에서 동작중인 프로세스 확인docker logs [옵션] <컨테이너 이름>
- 실행중인 컨테이너가 생성한 로그 보기docker exec [옵션] <컨테이너 이름>
- 실행중인 컨테이너 안에서 새로운 명령어 추가 실행nginx:1.14
, mysql:latest
버전 다운로드$ docker pull nginx:1.14
$ docker pull mysql
create
명령어 사용
start
명령어를 사용해 nginx 실행$ docker start webserver
inspect
명령어를 통해 상세정보 확인(네트워크 IP 등)
'{{.메서드명.}}'
형식으로 적게되면 해당 내용만 출력 가능(아래는 네트워크 IP 주소를 출력함)$ docker inspect webserver
$ docker inspect --format '{{.NetworkSettings.IPAddress}}' webserver
자주 사용하는 명령어는 alias
명령어를 통해 등록하기
alias <사용할 명령어>="<기존 명령어>"
alias
입력$ alias cip="docker inspect --format '{{.NetworkSettings.IPAddress}}'"
$ cip webserver(도커 컨테이너 이름)
curl
명령어를 통해 웹서버 동작중인 것을 확인$ curl 172.17.0.2
logs
명령어를 통해 컨테이너 로그 확인$ docker logs webserver
$ docker logs -f webserver # -f 옵션은 follow 옵션으로 로그를 계속 감시함
# 커맨드 창을 하나 더 열어서 테스트 해야함
top
명령어를 통해 해당 컨테이너 안에서 실행중인 컨테이너 목록을 출력$ docker top webserver
exec
명령어를 통해 컨테이너에 직접 접속하여 bash shell 사용(nginx 정보 수정)
-i
: interactive-t
: terminal$ docker exec -it webserver bash
$ cd /usr/share/nginx/html # nginx 디렉토리
$ echo "nickhealthy" > index.html # index.html 파일 수정
$ exit # 컨테이너 밖으로
$ docker stop webserver # 컨테이너 중지
$ docker start webserver # 컨테이너 시작
$ docker rm webserver # 컨테이너 삭제(컨테이너 중지 후 가능)
$ docker rm -f $(docker ps -aq) # 종료 및 실행중인 모든 컨테이너를 강제 종료
$ docker search httpd # 아파치 웹서버 httpd 이미지 확인
$ docker create httpd # 컨테이너 이미지 생성 후 백그라운드 실행
$ docker images # 다운받은 이미지 확인
$ docker run -d --name web httpd # 백그라운드 실행
$ docker ps # 실행중인 컨테이너 확인
$ docker inspect web # IP address는 172.17.0.2로 확인
$ alias cip="docker inspect --format '{{NetworkSettings.IPAddress}}'" # 좀더 쉬운 실행을 위해 alias 등록
$ cip web # alias 확인
$ curl 172.17.0.2
<html><body><h1>It works!</h1></body></html>
web 컨테이너가 만들어내는 로그를 출력하세요.
$ docker logs -f web # A 커맨드 창
$ curl 172.17.0.2 # B 커맨드 창
# A 커맨드 창에서 정상 출력
172.17.0.1 - - [20/Jul/2021:14:34:21 +0000] "GET / HTTP/1.1" 200 45
# 컨테이너 중지 및 삭제 동시에 진행
$ docker stop $(docker ps -aq) && docker rm $(docker ps -aq)
$ docker rmi httpd # 아파치 웹서버 이미지 삭제
$ docker images # 이미지 확인
https://www.youtube.com/watch?v=wrx-ixvtzxk&list=PLApuRlvrZKogb78kKq1wRvrjg1VMwYrvi&index=16